package leetcode.other.p153;

class Solution {
    public int findMin(int[] nums) {
        int l = 0;
        int r = nums.length - 1;
        while (l < r) {
            int mid = l + (r - l) / 2;
            if (nums[mid] > nums[r]) {
                l = mid + 1;
            } else {
                r = mid;
            }
        }
        return nums[l];
    }

    public static void main(String[] args) {
        //示例 1：
        //输入：nums = [3,4,5,1,2]
        //输出：1
        //解释：原数组为 [1,2,3,4,5] ，旋转 3 次得到输入数组。
        System.out.println(new Solution().findMin(new int[]{3, 4, 5, 1, 2}));
        //示例 2：
        //输入：nums = [4,5,6,7,0,1,2]
        //输出：0
        //解释：原数组为 [0,1,2,4,5,6,7] ，旋转 4 次得到输入数组。
        System.out.println(new Solution().findMin(new int[]{4, 5, 6, 7, 0, 1, 2}));
        //示例 3：
        //输入：nums = [11,13,15,17]
        //输出：11
        //解释：原数组为 [11,13,15,17] ，旋转 4 次得到输入数组。
        System.out.println(new Solution().findMin(new int[]{11, 13, 15, 17}));
    }
}